// 1,引入Mongoose模块
const mongoose = require('mongoose');

// 写仓库名字 /加仓库名字
let uri  = 'mongodb://localhost:27017/H5xiezhiqi'

// 1,链接数据库
mongoose.connect(uri)

let db = mongoose.connection;

// 2,监听事件

db.on("open",function(){
    console.log('数据库链接成功');
})

db.on("error",function(err){
    console.log(err);
})

// 命令行链接数据库  node +文件名

// 3、创建模型 相当于建表
    // type：数据类型
    // required: 是否必传
    // default：默认值
    let Schema =  mongoose.Schema({
        classes:{type:String, required:true},
        sex:{type:String, required:true ,default:"1"},
        name:{type:String, required:true ,default:"lbw"},
        age:{type:Number, required:false},
    })
    
    // 3.1创建集合(链接集合)
    // 在可视化
    let Col = mongoose.model("stus",Schema)

    // 3.2往数据库里面插入一条数据 
    // 顺序可以变 字符不能变
    // 特殊的地方，需要实例化COl
    // let dataBase = new Col({
    //     sex:"1",
    //     name:"安倍晋三2",
    //     age:"67",
    //     classes:"天空之城"
    // })

    // 3.3使用save方法将数据存到数据库
    // mongoose中的方法都是基于promise
    // 增
    // for(var i=0;i<20;i++){
    //     let dataBase = new Col({
    //         sex:'1',
    //         name:"安倍晋四"+i,
    //         age:i,
    //         classes:"天空之城"
    //     })
    //     dataBase.save()
    //     .then(res =>{
    //         console.log("保存成功");
    //         console.log(res);
    //     })
    //     .catch(err =>{
    //         console.log(err);
    //     })
    // }
    // dataBase.save()
    // .then(res =>{
    //     console.log("保存成功");
    //     console.log(res);
    // })
    // .catch(err =>{
    //     console.log(err);
    // })

    // 删
    // deleteMany 一次删除多条
    // Col.deleteOne({
    //     _id:"62c8f305d65c90390c32a074"
    // })
    // .then(res=>{
    //     console.log("删除成功");
    //     console.log(res);
    // })
    // .catch(err =>{console.log(err);})

    // 改
    // update(查询条件，要更新的值)
    // Col.updateOne({_id:"62c8f407a35843d04b9c67eb"},{$set:{name:"卢本伟"}})
    // .then(res =>{
    //     console.log("更新成功");
    //     console.log(res);
    // })
    // .catch(err =>{
    //     console.log(err);
    // })

    // 查 find(查询条件) 返回的是数组
    // sort({字段名:-1|1}) -1倒序 1正序
    // skip(number) 跳过几条
    // limit(number) 一次显示几条
    // Col.find({name:"卢本伟"})
    // .then(res =>{
    //     console.log(res);
    // })
    // .catch(err =>{
    //     console.log(err);
    // })